package com.dragon.modules.yuegou.model.order;

import com.dragon.modules.yuegou.entity.order.OrderCouponEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 订单优惠模型类
 * 
 * @author pbuilder generated
 * @date 2019-04-03 13:57:50
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class OrderCoupon extends OrderCouponEntity {

	private BigDecimal couponDiscountFee;
	
	public BigDecimal getCouponDiscountFee() {
		return couponDiscountFee;
	}

	public void setCouponDiscountFee(BigDecimal couponDiscountFee) {
		this.couponDiscountFee = couponDiscountFee;
	}

	/**
	 * 构造一个空订单优惠模型对象
	 */
	public OrderCoupon() {
		super();
	}

	/**
	 * 依据实体对象的信息构造一个订单优惠模型对象
	 * 
	 * @param entity 实体对象
	 */
	public OrderCoupon(OrderCouponEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个订单优惠模型对象
	 * 
	 * @param other 其它对象
	 */
	public OrderCoupon(OrderCoupon other) {
		super(other);
	}

	@Override
	public String getId() {
		return id;
	}

	/**
	 * 设置订单优惠券ID
	 * 
	 * @param id 订单优惠券ID
	 * @return 当前对象
	 */
	public OrderCoupon id(String id) {
		this.id = id;
		return this;
	}

	@Override
	public String getOrderNo() {
		return orderNo;
	}

	/**
	 * 设置订单号
	 * 
	 * @param orderNo 订单号
	 * @return 当前对象
	 */
	public OrderCoupon orderNo(String orderNo) {
		this.orderNo = orderNo;
		return this;
	}

	@Override
	public BigDecimal getAmount() {
		return amount;
	}

	/**
	 * 设置优惠金额
	 * 
	 * @param amount 优惠金额
	 * @return 当前对象
	 */
	public OrderCoupon amount(BigDecimal amount) {
		this.amount = amount;
		return this;
	}

	@Override
	public String getCouponId() {
		return couponId;
	}

	/**
	 * 设置会员优惠券ID
	 * 
	 * @param couponId 会员优惠券ID
	 * @return 当前对象
	 */
	public OrderCoupon couponId(String couponId) {
		this.couponId = couponId;
		return this;
	}

	@Override
	public String getCouponName() {
		return couponName;
	}

	/**
	 * 设置优惠券名称
	 * 
	 * @param couponName 优惠券名称
	 * @return 当前对象
	 */
	public OrderCoupon couponName(String couponName) {
		this.couponName = couponName;
		return this;
	}

	@Override
	public String getCouponTemplateId() {
		return couponTemplateId;
	}

	/**
	 * 设置优惠券模板ID(冗余ID)
	 * 
	 * @param couponTemplateId 优惠券模板ID(冗余ID)
	 * @return 当前对象
	 */
	public OrderCoupon couponTemplateId(String couponTemplateId) {
		this.couponTemplateId = couponTemplateId;
		return this;
	}
}
